<?php
/**
 * ＺＥＮＤパーシャルライブラリ
 * インプット群：チェックボックスコントローラモジュール
 */
require_once __DIR__ . '/../InputController.php';

class ZendPatrial_Input_RadiobuttonController extends ZendPartial_InputController
{
    /** テンプレートファイル名 */
    const NAME_TEMPLATE = 'radiobutton.tpl';
    /** ハッシュキー：値 */
    const KEY_VALUE = 'VALUE';
    /** ハッシュキー：ラベル */
    const KEY_LABEL = 'LAVEL';

    /** ラベルリスト */
    protected $_LabelList = array();

    /**
     * コンストラクタ
     * @param unknown_type $Name
     * @param unknown_type $TemplateDir
     */
    public function __construct($Name, $TemplateDir='')
    {
        if ($TemplateDir == '') {
            $TemplateDir = __DIR__;
        }
        parent::__construct($TemplateDir);
        $this->NAME = $Name;
    }

    /**
     * ラベルを追加する
     * @param unknown_type $Value
     * @param unknown_type $Label
     */
    public function add($Value, $Label)
    {
        $this->_LabelList[]
        = array(
                self::KEY_VALUE=>$Value,
                self::KEY_LABEL=>$Label
                );
    }

    /**
     * フェッチ
     * @see ZendPartial_InputController::fetch()
     * @return string
     */
    public function fetch($index, $TemplateFileName='')
    {
        if ($TemplateFileName == ''){
            $TemplateFileName = self::NAME_TEMPLATE;
        }
        $this->VALUE = $this->_LabelList[$index][self::KEY_VALUE];
        $this->view->LABEL = $this->_LabelList[$index][self::KEY_LABEL];
        $this->_setChecked();
        $sHtml = parent::fetch($TemplateFileName);
        return $sHtml;
    }

    protected function _setChecked()
    {
        $this->view->CHECKED = '';
        if (isset($_REQUEST[$this->NAME])){
            $RequestValue = $_REQUEST[$this->NAME];
            if ($this->VALUE == $RequestValue) {
                $this->view->CHECKED = 'checked="checked"';
            }
        }else{
            if ($this->VALUE == $this->_LabelList[0][self::KEY_VALUE]) {
                $this->view->CHECKED = 'checked="checked"';
            }
        }
    }
};